/**
 * 
 */
package ar.utn.frgp.banco.dao;

import java.util.Date;
import java.util.List;

import ar.utn.frgp.banco.entity.Movimientos;
import ar.utn.frgp.banco.entity.PagoServicios;
import ar.utn.frgp.banco.entity.Transferencias;
import ar.utn.frgp.banco.exceptions.DataAccessException;

/**
 * @author PUSDERKIS
 *
 */
public interface ReportesDao extends GenericDao {
	
	/**
	 * Obtiene un listado con los depositos y extracciones de una cuenta.
	 * @param idCuenta el id de la cuenta.
	 * @param fechaIni la fecha de inicio de busqueda.
	 * @param fechaFin la fecha de fin de la busqueda.
	 * @return el listado de movimientos.
	 * @throws DataAccessException
	 */
	List<Movimientos> depositosYExtraccionesEntreFechas(Long idCuenta, Date fechaIni,Date fechaFin) throws DataAccessException;
	
	/**
	 * Obtiene los plazo fijo de un cliente.
	 * @param dni el dni del cliente.
	 * @return El listado con todos los plazo fijo de los clientes.
	 * @throws DataAccessException
	 */
	
	//estadoPrestamo(String dni)throws DataAccessException;
	
	/**
	 * Obtiene el hisotrial de pagos de servicios de un cliente.
	 * @param dni el dni del cliente.
	 * @return el historial de pagos.
	 */
	List<PagoServicios> historialPagoServicios(String dni) throws DataAccessException;
	
	/**
	 * Obtiene un historico de transferencias realizadas por una cuenta.
	 * @return Un listado con las transferencias realizadas.
	 */
	List<Transferencias> historialTransferenciasRealizadas(Long cuenta) throws DataAccessException;
	
}
